package com.zsrt.java.day20170102.lh.collegesorequerysystem;

import java.util.Scanner;


public class CollegeDemo2 {
	//用户
	static User[] users = new User[5];
	//用户的个数
	static int count=0;
	
	User u=new User();
	
	
	
	public static void main(String[] args) {
		start();
		
		
		
	}
	
	/**
	 * 程序入口
	 */
	public static void start(){
		Scanner sc=new Scanner(System.in);
		System.out.println("1.管理员入口,2.普通用户入口,3.退出");
		int role=sc.nextInt();
		switch (role) {
		case 1: admin();break;
		case 2: user();break;
		case 3:System.out.println("退出系统成功"); break;
		}
	}
	
	/**
	 * 退出方法
	 */
	public static void quit() {
		System.out.println("程序退出成功");
		
		
		
	}
	
	
	
	/**
	 * 普通用户入口
	 * 
	 * 2.1 我的信息
		 *            输入准考证号码、密码后验证成功
		 *            2.1.1   查看个人信息包括分数
		 *            2.1.1   修改个人信息（分数、准考证号码不能修改）
		 *        2.2 查询本市(登录用户所在的城市)的总分状元
		 *        2.3 查询全国各个省份的状元
		 *        2.4 查询指定城市的状元
		 *        2.5 统计分析报表
		 *            2.5.1 查询各个省份500-600分的总人数并由高到低排列显示
		 *            2.5.2 查询各个省份过600分的总人数并由低到高排列显示

	 */
	public static void user() {
		Scanner sc=new Scanner(System.in);
		System.out.println("输入准考证号：");
		String ad=sc.next();
		System.out.println("输入密码");
		String adp=sc.next();
		if(ad.equals(adp)){
			System.out.println("登陆成功、、");
			boolean falg=true;
			while(falg){
				System.out.println("1 查看个人信息 、、");
				System.out.println("2 查询本市(登录用户所在的城市)的总分状元、、");
				System.out.println("3 查询全国各个省份的状元、、");
				System.out.println("4 查询指定城市的状元、、");
				System.out.println("5 统计分析报表、、");
				int ad1=sc.nextInt();
				
				switch (ad1) {
					case 1:personal(); break;
					case 2:cityNo1(); break;
					case 3:provinceNo1(); break;
					case 4:queryCityNo1(); break;
					case 5:statistics(); break;
				}
			}
		}
		
	}

	private static void statistics() {
		// TODO Auto-generated method stub
		
	}

	private static void queryCityNo1() {
		// TODO Auto-generated method stub
		
	}

	private static void provinceNo1() {
		// TODO Auto-generated method stub
		
	}

	private static void cityNo1() {
		// TODO Auto-generated method stub
		
	}

	private static void personal() {
		// TODO Auto-generated method stub
		
	}

	/**
	 * 管理员入口
	 * 需求：
	 * 选择1.输入帐号和密码进入管理员界面 
	 *      1.1 录入考生信息 
	 *      1.2 修改考生信息
	 *      1.3 删除考生信息
	 *      1.4 查询考生信息 
	 *           1.4.1 根据户籍所在地查询
	 *           1.4.2 根据姓名查询
	 *           1.4.3 根据准考证号码查询
	 *           1.4.4 返回上一层

	 */
	public static void admin(){
		
		Scanner sc=new Scanner(System.in);
		System.out.println("输入管理员帐号");
		String ad=sc.next();
		System.out.println("输入管理员密码");
		String adp=sc.next();
		if(ad.equals(adp)){
			System.out.println("登陆成功、、");
			boolean falg=true;
			while(falg){
				System.out.println("1 录入考生信息 、、");
				System.out.println("2 修改考生信息、、");
				System.out.println("3 删除考生信息、、");
				System.out.println("4 查询考生信息、、");
				System.out.println("5 退出、、");
				int ad1=sc.nextInt();
				
				switch (ad1) {
					case 1:recoding(); break;
					case 2:change(); break;
					case 3:delete(); break;
					case 4:query(); break;
					case 5:start(); break;
				}
			}
		}
		
		
		
		
		
	}
	
	/**
	 * 管理员查询
	 */
	private static void query() {
		
		boolean falg=true;
		while(falg){
		Scanner sc=new Scanner(System.in);
		System.out.println("1 根据户籍所在地查询");
		System.out.println("2 根据姓名查询");
		System.out.println("3 根据准考证号码查询");
		System.out.println("4 返回上一层");
		int num = sc.nextInt();
		
		if(1==num){
			
			System.out.println("输入户籍所在地");
			String city=sc.next();
			queryByCity(city);
			}else if(2==num){
				System.out.println("输入姓名查询");
				String name=sc.next();
				queryByName(name);
				}else if(3==num){
					System.out.println("输入要查询的学生准考证号：");
					String cardNum=sc.next();
					int i=searchCardNum(cardNum);
					if(i==-1){
					System.out.println("该准考证的学生不存在");
					}else{
						//先查询出学生的详细信息
						queryByxiaobiao(i);
						}
		}
			//
			System.out.println("是否继续查询 y/n");
			String yn1=sc.next();
			if("y".equals(yn1)){
				falg=true;
			}else if("n".equals(yn1)){
				falg=false;
			}else{
				System.out.println("输入有误，默认不查询");
				falg=false;
			}
		
		}
	}

	/**
	 * 删除考生信息
	 */
	private static void delete() {
		
		boolean falg=true;
		while(falg){
			Scanner sc=new Scanner(System.in);
			System.out.println("输入要删除的学生准考证号：");
			String cardNum=sc.next();
			int i=searchCardNum(cardNum);
			if(i==-1){
				System.out.println("该准考证的学生不存在");
			}else{
				//先查询出学生的详细信息
				queryByxiaobiao(i);
				//
				System.out.println("是否真的要删除 y/n");
				String yn=sc.next();
				if("y".equals(yn)){
					
					deleteByxiaobiao(i);
					
				}else if("n".equals(yn)){
					delete();
	
				}else{
					System.out.println("输入有误，默认不删");
					delete();
				}
				//
				System.out.println("是否继续删除 y/n");
				String yn1=sc.next();
				if("y".equals(yn1)){
					falg=true;
				}else if("n".equals(yn1)){
					falg=false;
				}else{
					System.out.println("输入有误，默认不删除");
					falg=false;
				}
			}
		
		}
	}
	/**
	 * 修改考生信息
	 */
	private static void change() {
		
		boolean falg=true;
		while(falg){
			Scanner sc=new Scanner(System.in);
			System.out.println("输入要修改的学生准考证号：");
			String cardNum=sc.next();
			int i=searchCardNum(cardNum);
			if(i==-1){
				System.out.println("该准考证的学生不存在");
			}else{
				//先查询出学生的详细信息
				queryByxiaobiao(i);
				
				System.out.println("输入要修改的学生的密码：");
				String pass=sc.next();
				System.out.println("输入要修改的学生的名字：");
				String name=sc.next();
				System.out.println("输入要修改的学生的省份：");
				String province=sc.next();
				System.out.println("输入要修改的学生的语文：");
				double chineseScore=sc.nextDouble();
				System.out.println("输入要修改的学生的数学：");
				double mathScore=sc.nextDouble();
				System.out.println("输入要修改的学生的英语：");
				double englishScore=sc.nextDouble();
				
				User u=new User(cardNum, pass,name,province,chineseScore, mathScore, englishScore, "学生");
				users[i]=u;
				System.out.println("修改成功！");
				
				//
				System.out.println("是否继续修改 y/n");
				String yn=sc.next();
				if("y".equals(yn)){
					falg=true;
				}else if("n".equals(yn)){
					falg=false;
				}else{
					System.out.println("输入有误，默认退出");
					falg=false;
				}
				
			}
		}
		
		
	}
	
	/**
	 * 录入考生信息
	 */
	private static void recoding() {
		
		boolean falg=true;
		while(falg){
			Scanner sc=new Scanner(System.in);
			System.out.println("输入学生的准考证号：");
			String cardNum=sc.next();
			int i=searchCardNum(cardNum);
			if(i!=-1){
				System.out.println("该准考证已经存在");
				
			}else{
				
				System.out.println("输入学生的密码：");
				String pass=sc.next();
				System.out.println("输入学生的名字：");
				String name=sc.next();
				System.out.println("输入学生的年龄：");
				 int age=sc.nextInt();
				System.out.println("输入学生的省份：");
				String province=sc.next();
				System.out.println("输入学生的城市：");
				String city=sc.next();
				System.out.println("输入学生的电话：");
				String address=sc.next();
				System.out.println("输入学生的语文：");
				double chineseScore=sc.nextDouble();
				System.out.println("输入学生的数学：");
				double mathScore=sc.nextDouble();
				System.out.println("输入学生的英语：");
				double englishScore=sc.nextDouble();
				
				//录入学生信息
				User u=new User(cardNum, pass,name,age,province,city,address,chineseScore, mathScore, englishScore, "学生");
				users[count]=u;
				count++;
				System.out.println("录入成功！");
				
				//
				System.out.println("是否继续录入 y/n");
				String yn=sc.next();
				if("y".equals(yn)){
					falg=true;
				}else if("n".equals(yn)){
					falg=false;
				}else{
					System.out.println("输入有误，默认退出");
					falg=false;
				}
			}
		}
	}
	
	/**
	 * 查询准考证号
	 * @param cardNum 要查询的准考证号码
	 * @return 目标的下标
	 */
	public static int searchCardNum(String cardNum){
		int flag=-1;
		for(int i=0;i<count;i++){
			if(users[i].getCardNum().equals(cardNum)){
				flag=i;
				break;
			}
		}
		return flag;
	}
	
	/**
	 * 根据下标查询user详细信息
	 * @param i 准考证号查询后返回的下标
	 */
	public static void queryByxiaobiao(int i){
		String a1=users[i].getCardNum();
		String a=users[i].getPass();
		String b=users[i].getName();
		int age=users[i].getAge();
		String c=users[i].getProvince();
		String city=users[i].getCity();
		String address=users[i].getAddress();
		double d=users[i].getChineseScore();
		double e=users[i].getMathScore();
		double f=users[i].getEnglishScore();
		System.out.println("准考证号为:"+a1+"\t"+"的学生的信息如下：");
		System.out.println("密码:"+a);
		System.out.println("名字:"+b);
		System.out.println("年龄:"+age);
		System.out.println("省份："+c);
		System.out.println("城市："+city);
		System.out.println("联系方式："+address);
		System.out.println("语文成绩:"+d);
		System.out.println("数学成绩:"+e);
		System.out.println("英语成绩:"+f);
		System.out.println();
	}
	
	/**
	 *根据查找到的下标删除对象 
	 * @param i 要删除的下标
	 */
	public static void deleteByxiaobiao(int i){
		for(int j=i;i<count-1;j++){
			users[j]=users[j+1];
		}
		count--;
		users[count]=null;
	}
	
	
	
	/**
	 * 城市下的学生
	 * @param st 要查询的城市
	 *
	 */
	public static void queryByCity(String st){
		
		
		for(int i=0;i<count;i++){
			System.out.println(i);
			if(st.equals(users[i].getCity())){
				queryByxiaobiao(i);
			}
		}
	}

	/**
	 * 名字
	 * @param st 要查询的名字
	 *
	 */
	public static void queryByName(String st){
		
		for(int i=0;i<count;i++){
			if(st.equals(users[i].getName())){
				queryByxiaobiao(i);
			}
		}
	}
	
	
	
}
